import { readFileSync } from 'fs';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const appPath = join(__dirname, 'src', 'App.jsx');

// 读取App.jsx文件内容
const appContent = readFileSync(appPath, 'utf8');

// 统计所有标签的开闭情况
function analyzeTags(content) {
  const tagCounts = {};
  
  // 匹配所有标签（简单实现，可能需要更复杂的正则来处理嵌套情况）
  const openingTags = content.match(/<([A-Za-z0-9.-]+)(?!\/)[^>]*>/g) || [];
  const closingTags = content.match(/<\/([A-Za-z0-9.-]+)>/g) || [];
  
  // 统计开始标签
  openingTags.forEach(tag => {
    // 提取标签名
    const tagName = tag.match(/<([A-Za-z0-9.-]+)/)[1];
    tagCounts[tagName] = (tagCounts[tagName] || { open: 0, close: 0 });
    tagCounts[tagName].open++;
  });
  
  // 统计结束标签
  closingTags.forEach(tag => {
    // 提取标签名
    const tagName = tag.match(/<\/([A-Za-z0-9.-]+)>/)[1];
    tagCounts[tagName] = (tagCounts[tagName] || { open: 0, close: 0 });
    tagCounts[tagName].close++;
  });
  
  // 计算差值
  Object.keys(tagCounts).forEach(tagName => {
    const { open, close } = tagCounts[tagName];
    tagCounts[tagName].difference = open - close;
  });
  
  return tagCounts;
}

// 找出未闭合的标签
const tagStats = analyzeTags(appContent);
console.log('标签统计结果:');
Object.entries(tagStats).sort((a, b) => Math.abs(b[1].difference) - Math.abs(a[1].difference))
  .forEach(([tagName, stats]) => {
    if (stats.difference !== 0) {
      console.log(`标签 ${tagName}: 打开=${stats.open}, 关闭=${stats.close}, 差值=${stats.difference}`);
    }
  });

// 输出文件末尾的内容，以便查看
const lines = appContent.split('\n');
const endLines = lines.slice(-50);
console.log('\n文件末尾50行内容:');
console.log(endLines.join('\n'));